/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ru.jSkyRoom.interfaces.major;

import ru.jSkyRoom.interfaces.additional.HasConditions;
import java.util.Collection;
import ru.jSkyRoom.interfaces.additional.HasScript;
import ru.jSkyRoom.interfaces.stub.JSkySound;
import ru.jSkyRoom.interfaces.stub.ResponseData;
import ru.jSkyRoom.interfaces.sub.JSkyResponse;
import skyproc.Condition;
import skyproc.FormID;
import skyproc.INFO;
import skyproc.genenums.FavorLevel;

/**
 *
 * @author Rakev
 */
public interface Info extends Major, HasScript, HasConditions {

    public boolean get(INFO.ResponseFlag flag);

    public void set(INFO.ResponseFlag flag);

    public void unset(INFO.ResponseFlag flag);

    public float getResetTime();

    public void setResetTime(float hours);

    public Info getTopic();

    public void setTopic(Info topic);

    public Info getPrevious();

    public void setPrevious(Info previous);

    public FavorLevel getFavorLevel();

    public void setFavorLevel(FavorLevel lev);

    public Collection<Info> getTopicLinks();

    public void addTopicLink(Info link);

    public void removeTopicLink(Info link);

    public ResponseData getResponseData();

    public void setResponseData(ResponseData response);

    public Collection<JSkyResponse> getResponses();

    public String getPrompt();

    public void setPrompt(String text);

    public NPC getSpeaker();

    public void setSpeaker(NPC speaker);

    public Info getWalkAwayTopic();

    public void setWalkAwayTopic(Info topic);

    public JSkySound getAudioOverride();

    public void setAudioOverride(JSkySound sound);
}
